Một Lịch sử Tách biệt xảy ra khi dòng thời gian của một kho lưu trữ tách thành nhiều nhánh không tuyến tính. Điều này thường xảy ra khi một nhánh tính năng (ví dụ như news-hotfix) và nhánh chính phát triển độc lập sau khi chia sẻ một gốc chung. Sự phân nhánh này tạo ra cấu trúc nội bộ phức tạp trong các bản sao lưu.
1. Nguyên nhân gây ra sự phân nhánh
Sự tách biệt bắt đầu khi một nhà phát triển thực hiện lệnh git commit trên một nhánh cục bộ trong khi nhánh chính cũng nhận được các bản sao mới (ví dụ: cập nhật file index.html). Điều này tạo ra một khoảng trống topo ở đó công việc của bạn trên about/me.html không còn dựa trên trạng thái dự án mới nhất.
2. Hệ quả của lịch sử không tuyến tính
Trong khi Git xử lý sự tách biệt thông qua nối hợp đệ quy, lịch sử kết quả thường bị lộn xộn với các bản ghi "Merge branch...". Điều này khiến cho lịch sử kho lưu trữ khó kiểm tra, vì trình tự của git add và git commit các hành động trên các tập tin như news-2.html và about/me.html trở nên đan xen về mặt thị giác.
3. Mất kết nối giữa các bản sao lưu
Mỗi lần ghi lại đều tạo ra một bản sao lưu hoàn chỉnh bản sao lưu. Khi lịch sử tách biệt, phần cấu trúc nội bộ của nhánh tính năng của bạn thiếu bối cảnh về những thay đổi đồng thời đã xảy ra ở nơi khác, buộc phải áp dụng chiến lược như tái cơ cấu để đồng bộ lại dòng thời gian dự án.